The present invention relates to a method of improving the effectiveness of a data processing application.
More specifically, the invention is concerned with increasing the data processing rate in virtual machines, and then particularly with respect to the JAVA program language.
The invention is not restricted to JAVA, but can be applied with many program languages, although the invention is described below primarily with reference to JAVA.
The method is intended for use with adaptive optimisation of a program. In adaptive optimisation, the program is restructured and different parts of the program are optimised as the program is run. The general problem of increasing data processing capacity resides in the rapid creation of new memory sites, since the longer the program is run, the more memory space is required.
JAVA and other dynamic program language include an automatic memory management. This means that the programmer need not keep an account of those parts of the memory that are used. The virtual machine carries out a so-called garbage collection from time to time, meaning, in principle, that the virtual machine scans the entire memory and finds which objects have been stored in the memory and which the program can no longer address. These parts of the memory are returned for later use.
JAVA also includes methods for so called thread management methods. Thus, JAVA incorporates a system for supporting or simulating the simultaneous processing of two or more programs. The thread management can be divided into two parts. One part concerns the manner in which different threads are structured in a controlled manner. Another part is concerned with which threads shall be run and which threads shall be passive and wait to be run.
In order to further increase effectiveness and place occupied memory space at the disposal of the program, it is not sufficient to solely optimise the memory with respect to the objects.
The present invention solves this problem.